package com.lab.utils;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;

/**
 * 针对列表的操作
 * Created by ak
 */
public class ArrayUtil {
    //用于表去重
    public static <T> List<T> removeDuplicate(List<T> list) {
        List<T> newList = new ArrayList<T>();
        HashSet<T> set = new LinkedHashSet<T>(list);
        newList.addAll(set);
        return newList;
    }

    /**
     * 交换list的2个元素
     *
     * @param list
     * @param i1   交换的位置1
     * @param i2   交换的位置2
     * @param <T>
     */
    public static <T> void swapListElem(List<T> list, int i1, int i2) {
        if (i1 == i2 || list == null) return;
        T obj1 = list.get(i1);
        T obj2 = list.get(i2);
        list.set(i1, obj2);
        list.set(i2, obj1);
    }

    /**
     * 列表空判断
     * @param list
     * @param <T>
     * @return
     */
    public static <T> boolean isNullOrEmpty(List<T> list) {
        if (list == null || list.isEmpty()) {
            return true;
        }
        return false;
    }

    /**
     * 判断列表游标是否安全
     * @param index
     * @param list
     * @return
     */
    public static boolean isIndexSafe(int index, List list){
        if (index >= 0 && index <= list.size() - 1){
            return true;
        }
        return false;
    }

    public static List<Integer> getRangerListFor(int index) {
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= index; i++) {
            list.add(i);

        }
        return list;
    }

}
